package Model;

import View.Megjelenitendo;


/**
 * 
 * A mozgó dinamikus entitások ősosztálya.
 *
 */

public abstract class MozgoDinEntitas extends DinEntitas
{
	private Mezo honnanJottemIde;
	public Mezo getHonnanJottemIde() {
		return honnanJottemIde;
	}

	public void setHonnanJottemIde(Mezo honnanJottemIde) {
		this.honnanJottemIde = honnanJottemIde;
	}

	/**
	 * A MozgoDinEntitas osztály paraméteres konstruktora.
	 * @param ny Referencia egy INyilvántartó interfészt megvalósító objektumra.
	 */
	public MozgoDinEntitas(INyilvantarto ny)
	{
		super(ny);
	}

	/**
	 * A MozgoDinEntitás osztály interakciója a kaviccsal
	 * @param k Ez a kavics tolódott rá
	 */
	
	@Override 
	public void ittVan(Kavics k)
	{
		holvagyok.levesz(this);
		nyilvantarto.leiratkozas(this);
	}
	
	public void iderak(Mezo mezo)
	{
		super.iderak(mezo);
		nyilvantarto.feliratkozas(this);
	}
	
	/** A következő lépés célját tárolja. */
	public Mezo kovetkezoMezo;

	/**
	 * A következőMező változó értékét figyelembe véve lépteti az objektumot.
	 */
	public void lep()
	{
		honnanJottemIde = holvagyok;
		if(holvagyok != null && kovetkezoMezo != null)
		{
			holvagyok.levesz(this);
			kovetkezoMezo.rarak(this);
			holvagyok = kovetkezoMezo;
		}
	}
	
	public String kiir()
	{
		return null;
	}
	
	@Override
	public Megjelenitendo Megjelenit()
	{
		Megjelenitendo m =  new Megjelenitendo();
		m.setDotColor(color);
		return m;
	}
}